PSR-1 minimale codeerstandaard
Dit gedeelte van de standaard bevat de minimale codeerstandaard die een zeker niveau van technische interoperabiliteit tussen gedeelde PHP-code garandeert.
Bronnen
Overzicht
SR-1 is de eerste stap naar het schrijven van code die compatibel is met de community standaarden. Waarschijnlijk gebruiken jullie het allemaal al zonder het te beseffen. PSR-1 zijn richtlijnen die gemakkelijk te implementeren zijn:
- PHP-tags: PHP-code staat in de <?php ?> of <?= ?> tags. Gebruik alleen de <?php en <?= tags.
- Encoderen: elk PHP-bestand moet geëncodeerd worden met de UTF-8 character set zonder een byte order mark (BOM)
- Wordt meestal automatisch gedaan door de text-editor of IDE
- Objective: een php-bestand kan ofwel ‘symbolen’ definieren zoals een klasse, een trait, een functie,… ofwel kan het een actie ondernemen zoals bijvoorbeeld een output creëren of data manipuleren. Een php-bestand zou niet beide moeten doen. Je declareert in één bestand en je gebruikt wat je hebt gedeclareerd in een ander bestand.
- Autoloading: PHP-namespaces en klassen moeten de PSR-4 autoloader standaard ondersteunen
- Klassennamen moeten in pacalnotatie gedeclareerd worden:
- DitIsEenKlasse
- Klassenconstanten moeten gedeclareerd worden in hoofdletters. Gebruik het onderlijningsteken als scheidingsteken tussen de woorden:
- DIT_IS_EEN_CONSTANTE
- Methoden moeten in camelcasenotatie gedeclareerd worden:
- ditIsEenMethode
Wat doet BOM?
BOM wordt gebruikt om de gebruikte “endian” aan te duiden van een signaal. Aangezien de endianness bij UTF-8 niet nodig zijn, moet BOM niet gebruikt worden. (UTF-8 is onafhankelijk van de endianness van de computer)
BOM voegt een aantal karakters aan de file toe om aan te geven dat het een UTF-8 bestand is. Niet alle programma’s herkennen deze karakters.
- Stream: 903FD815
- Little endian: little end first 15 D8 3F 90
- Big endian: big end first 90 3F D8 15
UTF-8: manier van tekens op te slaan als een stroom van bytes à UTF-8 = tekencodering met variabele lengte (niet elk teken heeft evenveel bytes nodig)
2015-12-13 00:39:20